home *** CD-ROM | disk | FTP | other *** search
Emacs Compiled Lisp | 1995-08-29 | 6.1 KB |
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was processed as: Emacs Compiled Lisp
(other/emacsCompiledLisp).
This format is not currently supported by dexvert.
Confidence | Program | Detection | Match Type | Support
|
---|
1%
| dexvert
| Emacs Compiled Lisp (other/emacsCompiledLisp)
| magic
| Unsupported |
1%
| dexvert
| Combustion 2 Particle Library (other/combustion2ParticleLibrary)
| ext
| Unsupported |
100%
| file
| Emacs/XEmacs v19 byte-compiled Lisp data
| default
| |
99%
| file
| data
| default
| |
100%
| TrID
| Emacs/XEmacs byte-compiled Lisp (generic)
| default
| |
100%
| xdgMime
| text/x-emacs-lisp
| default (weak)
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 3b 45 4c 43 13 00 00 00 | 0a 3b 3b 3b 20 63 6f 6d |;ELC....|.;;; com|
|00000010| 70 69 6c 65 64 20 62 79 | 20 63 74 68 6f 6d 70 40 |piled by| cthomp@|
|00000020| 77 69 6c 6c 6f 77 2e 63 | 73 2e 75 69 75 63 2e 65 |willow.c|s.uiuc.e|
|00000030| 64 75 20 6f 6e 20 54 75 | 65 20 41 75 67 20 32 39 |du on Tu|e Aug 29|
|00000040| 20 31 34 3a 31 39 3a 33 | 30 20 31 39 39 35 0a 3b | 14:19:3|0 1995.;|
|00000050| 3b 3b 20 66 72 6f 6d 20 | 66 69 6c 65 20 2f 78 65 |;; from |file /xe|
|00000060| 6d 61 63 73 2f 78 65 6d | 61 63 73 2d 31 39 2e 31 |macs/xem|acs-19.1|
|00000070| 33 2d 72 65 6c 65 61 73 | 65 2f 65 64 69 74 6f 72 |3-releas|e/editor|
|00000080| 2f 6c 69 73 70 2f 70 63 | 6c 2d 63 76 73 2f 64 6c |/lisp/pc|l-cvs/dl|
|00000090| 6c 2e 65 6c 0a 3b 3b 3b | 20 65 6d 61 63 73 20 76 |l.el.;;;| emacs v|
|000000a0| 65 72 73 69 6f 6e 20 31 | 39 2e 31 33 20 58 45 6d |ersion 1|9.13 XEm|
|000000b0| 61 63 73 20 4c 75 63 69 | 64 2e 0a 3b 3b 3b 20 62 |acs Luci|d..;;; b|
|000000c0| 79 74 65 63 6f 6d 70 20 | 76 65 72 73 69 6f 6e 20 |ytecomp |version |
|000000d0| 32 2e 32 35 3b 20 31 2d | 53 65 70 2d 39 34 2e 0a |2.25; 1-|Sep-94..|
|000000e0| 3b 3b 3b 20 6f 70 74 69 | 6d 69 7a 61 74 69 6f 6e |;;; opti|mization|
|000000f0| 20 69 73 20 6f 6e 2e 0a | 3b 3b 3b 20 74 68 69 73 | is on..|;;; this|
|00000100| 20 66 69 6c 65 20 75 73 | 65 73 20 6f 70 63 6f 64 | file us|es opcod|
|00000110| 65 73 20 77 68 69 63 68 | 20 64 6f 20 6e 6f 74 20 |es which| do not |
|00000120| 65 78 69 73 74 20 69 6e | 20 45 6d 61 63 73 20 31 |exist in| Emacs 1|
|00000130| 38 2e 0a 0a 28 69 66 20 | 28 61 6e 64 20 28 62 6f |8...(if |(and (bo|
|00000140| 75 6e 64 70 20 27 65 6d | 61 63 73 2d 76 65 72 73 |undp 'em|acs-vers|
|00000150| 69 6f 6e 29 0a 09 20 28 | 6f 72 20 28 61 6e 64 20 |ion).. (|or (and |
|00000160| 28 62 6f 75 6e 64 70 20 | 27 65 70 6f 63 68 3a 3a |(boundp |'epoch::|
|00000170| 76 65 72 73 69 6f 6e 29 | 20 65 70 6f 63 68 3a 3a |version)| epoch::|
|00000180| 76 65 72 73 69 6f 6e 29 | 0a 09 20 20 20 20 20 28 |version)|.. (|
|00000190| 73 74 72 69 6e 67 2d 6c | 65 73 73 70 20 65 6d 61 |string-l|essp ema|
|000001a0| 63 73 2d 76 65 72 73 69 | 6f 6e 20 22 31 39 22 29 |cs-versi|on "19")|
|000001b0| 29 29 0a 20 20 20 20 28 | 65 72 72 6f 72 20 22 54 |)). (|error "T|
|000001c0| 68 69 73 20 66 69 6c 65 | 20 77 61 73 20 63 6f 6d |his file| was com|
|000001d0| 70 69 6c 65 64 20 66 6f | 72 20 45 6d 61 63 73 20 |piled fo|r Emacs |
|000001e0| 31 39 2e 22 29 29 0a 0a | 28 62 79 74 65 2d 63 6f |19."))..|(byte-co|
|000001f0| 64 65 20 22 c0 c1 21 88 | c2 c3 21 88 c4 c5 4d 88 |de "..!.|..!...M.|
|00000200| c6 c7 4d 88 c8 c9 4d 87 | 22 20 5b 72 65 71 75 69 |..M...M.|" [requi|
|00000210| 72 65 20 65 6c 69 62 2d | 6e 6f 64 65 20 70 72 6f |re elib-|node pro|
|00000220| 76 69 64 65 20 64 6c 6c | 20 64 6c 6c 2d 67 65 74 |vide dll| dll-get|
|00000230| 2d 64 75 6d 6d 79 2d 6e | 6f 64 65 20 23 5b 28 64 |-dummy-n|ode #[(d|
|00000240| 6c 6c 29 20 22 08 41 87 | 22 20 5b 64 6c 6c 5d 20 |ll) ".A.|" [dll] |
|00000250| 31 5d 20 64 6c 6c 2d 6c | 69 73 74 2d 6e 6f 64 65 |1] dll-l|ist-node|
|00000260| 73 20 23 5b 28 64 6c 6c | 29 20 22 c0 19 c2 0b 21 |s #[(dll|) "....!|
|00000270| 89 1c c5 48 89 1e 06 0c | 3d ac 8e 0e 06 09 42 11 |...H....|=.....B.|
|00000280| 0e 06 c5 48 89 16 06 aa | 6e 09 2b 87 22 20 5b 6e |...H....|n.+." [n|
|00000290| 69 6c 20 72 65 73 75 6c | 74 20 64 6c 6c 2d 67 65 |il resul|t dll-ge|
|000002a0| 74 2d 64 75 6d 6d 79 2d | 6e 6f 64 65 20 64 6c 6c |t-dummy-|node dll|
|000002b0| 20 64 75 6d 6d 79 20 30 | 20 6e 6f 64 65 5d 20 33 | dummy 0| node] 3|
|000002c0| 5d 20 64 6c 6c 2d 73 65 | 74 2d 66 72 6f 6d 2d 6e |] dll-se|t-from-n|
|000002d0| 6f 64 65 2d 6c 69 73 74 | 20 23 5b 28 64 6c 6c 20 |ode-list| #[(dll |
|000002e0| 6c 69 73 74 29 20 22 c0 | 09 21 88 c2 09 21 89 1b |list) ".|.!...!..|
|000002f0| 1c 0d ab 95 0d 40 c6 0c | 49 88 0c c7 0d 40 49 88 |.....@..|I....@I.|
|00000300| 0d 40 14 0d 41 89 15 ac | 6b 0c c7 0b 49 88 0b c6 |.@..A...|k...I...|
|00000310| 0c 49 2a 87 22 20 5b 64 | 6c 6c 2d 63 6c 65 61 72 |.I*." [d|ll-clear|
|00000320| 20 64 6c 6c 20 64 6c 6c | 2d 67 65 74 2d 64 75 6d | dll dll|-get-dum|
|00000330| 6d 79 2d 6e 6f 64 65 20 | 64 75 6d 6d 79 20 6c 65 |my-node |dummy le|
|00000340| 66 74 20 6c 69 73 74 20 | 30 20 31 5d 20 34 5d 5d |ft list |0 1] 4]]|
|00000350| 20 32 29 0a 28 66 73 65 | 74 20 27 64 6c 6c 2d 65 | 2).(fse|t 'dll-e|
|00000360| 6c 65 6d 65 6e 74 20 27 | 28 6d 61 63 72 6f 20 2e |lement '|(macro .|
|00000370| 20 23 5b 28 64 6c 6c 20 | 6e 6f 64 65 29 20 22 c0 | #[(dll |node) ".|
|00000380| 09 44 87 22 20 5b 65 6c | 69 62 2d 6e 6f 64 65 2d |.D." [el|ib-node-|
|00000390| 64 61 74 61 20 6e 6f 64 | 65 5d 20 32 20 22 5c 0a |data nod|e] 2 "\.|
|000003a0| 47 65 74 20 74 68 65 20 | 65 6c 65 6d 65 6e 74 20 |Get the |element |
|000003b0| 6f 66 20 61 20 4e 4f 44 | 45 20 69 6e 20 61 20 64 |of a NOD|E in a d|
|000003c0| 6f 75 62 6c 79 20 6c 69 | 6e 6b 65 64 20 6c 69 73 |oubly li|nked lis|
|000003d0| 74 20 44 4c 4c 2e 0a 41 | 72 67 73 3a 20 44 4c 4c |t DLL..A|rgs: DLL|
|000003e0| 20 4e 4f 44 45 2e 22 5d | 29 29 0a 28 66 73 65 74 | NODE."]|)).(fset|
|000003f0| 20 27 64 6c 6c 2d 63 72 | 65 61 74 65 20 23 5b 6e | 'dll-cr|eate #[n|
|00000400| 69 6c 20 22 c0 c1 89 89 | 23 89 1a c3 5c 6e 49 88 |il "....|#...\nI.|
|00000410| 5c 6e c4 5c 6e 49 88 c5 | 5c 6e 29 42 87 22 20 5b |\n.\nI..|\n)B." [|
|00000420| 76 65 63 74 6f 72 20 6e | 69 6c 20 64 75 6d 6d 79 |vector n|il dummy|
|00000430| 2d 6e 6f 64 65 20 31 20 | 30 20 44 4c 2d 4c 49 53 |-node 1 |0 DL-LIS|
|00000440| 54 5d 20 35 20 22 5c 0a | 43 72 65 61 74 65 20 61 |T] 5 "\.|Create a|
|00000450| 6e 20 65 6d 70 74 79 20 | 64 6f 75 62 6c 79 20 6c |n empty |doubly l|
|00000460| 69 6e 6b 65 64 20 6c 69 | 73 74 2e 22 5d 29 0a 28 |inked li|st."]).(|
|00000470| 66 73 65 74 20 27 64 6c | 6c 2d 70 20 23 5b 28 6f |fset 'dl|l-p #[(o|
|00000480| 62 6a 65 63 74 29 20 22 | 08 a2 c1 3d 87 22 20 5b |bject) "|...=." [|
|00000490| 6f 62 6a 65 63 74 20 44 | 4c 2d 4c 49 53 54 5d 20 |object D|L-LIST] |
|000004a0| 32 20 22 5c 0a 52 65 74 | 75 72 6e 20 74 20 69 66 |2 "\.Ret|urn t if|
|000004b0| 20 4f 42 4a 45 43 54 20 | 69 73 20 61 20 64 6f 75 | OBJECT |is a dou|
|000004c0| 62 6c 79 20 6c 69 6e 6b | 65 64 20 6c 69 73 74 2c |bly link|ed list,|
|000004d0| 20 6f 74 68 65 72 77 69 | 73 65 20 72 65 74 75 72 | otherwi|se retur|
|000004e0| 6e 20 6e 69 6c 2e 22 5d | 29 0a 28 66 73 65 74 20 |n nil."]|).(fset |
|000004f0| 27 64 6c 6c 2d 65 6e 74 | 65 72 2d 66 69 72 73 74 |'dll-ent|er-first|
|00000500| 20 23 5b 28 64 6c 6c 20 | 65 6c 65 6d 65 6e 74 29 | #[(dll |element)|
|00000510| 20 22 c0 09 c2 09 21 0b | 23 87 22 20 5b 64 6c 6c | "....!.|#." [dll|
|00000520| 2d 65 6e 74 65 72 2d 61 | 66 74 65 72 20 64 6c 6c |-enter-a|fter dll|
|00000530| 20 64 6c 6c 2d 67 65 74 | 2d 64 75 6d 6d 79 2d 6e | dll-get|-dummy-n|
|00000540| 6f 64 65 20 65 6c 65 6d | 65 6e 74 5d 20 34 20 22 |ode elem|ent] 4 "|
|00000550| 5c 0a 41 64 64 20 61 6e | 20 65 6c 65 6d 65 6e 74 |\.Add an| element|
|00000560| 20 66 69 72 73 74 20 6f | 6e 20 61 20 64 6f 75 62 | first o|n a doub|
|00000570| 6c 79 20 6c 69 6e 6b 65 | 64 20 6c 69 73 74 2e 0a |ly linke|d list..|
|00000580| 41 72 67 73 3a 20 44 4c | 4c 20 45 4c 45 4d 45 4e |Args: DL|L ELEMEN|
|00000590| 54 2e 22 5d 29 0a 28 66 | 73 65 74 20 27 64 6c 6c |T."]).(f|set 'dll|
|000005a0| 2d 65 6e 74 65 72 2d 6c | 61 73 74 20 23 5b 28 64 |-enter-l|ast #[(d|
|000005b0| 6c 6c 20 65 6c 65 6d 65 | 6e 74 29 20 22 c0 09 c2 |ll eleme|nt) "...|
|000005c0| 09 21 0b 23 87 22 20 5b | 64 6c 6c 2d 65 6e 74 65 |.!.#." [|dll-ente|
|000005d0| 72 2d 62 65 66 6f 72 65 | 20 64 6c 6c 20 64 6c 6c |r-before| dll dll|
|000005e0| 2d 67 65 74 2d 64 75 6d | 6d 79 2d 6e 6f 64 65 20 |-get-dum|my-node |
|000005f0| 65 6c 65 6d 65 6e 74 5d | 20 34 20 22 5c 0a 41 64 |element]| 4 "\.Ad|
|00000600| 64 20 61 6e 20 65 6c 65 | 6d 65 6e 74 20 6c 61 73 |d an ele|ment las|
|00000610| 74 20 6f 6e 20 61 20 64 | 6f 75 62 6c 79 20 6c 69 |t on a d|oubly li|
|00000620| 6e 6b 65 64 20 6c 69 73 | 74 2e 0a 41 72 67 73 3a |nked lis|t..Args:|
|00000630| 20 44 4c 4c 20 45 4c 45 | 4d 45 4e 54 2e 22 5d 29 | DLL ELE|MENT."])|
|00000640| 0a 28 66 73 65 74 20 27 | 64 6c 6c 2d 65 6e 74 65 |.(fset '|dll-ente|
|00000650| 72 2d 61 66 74 65 72 20 | 23 5b 28 64 6c 6c 20 6e |r-after |#[(dll n|
|00000660| 6f 64 65 20 65 6c 65 6d | 65 6e 74 29 20 22 c0 09 |ode elem|ent) "..|
|00000670| 89 c2 48 0b 23 1c 09 c2 | 48 c5 0c 49 88 09 c2 0c |..H.#...|H..I....|
|00000680| 49 29 87 22 20 5b 76 65 | 63 74 6f 72 20 6e 6f 64 |I)." [ve|ctor nod|
|00000690| 65 20 31 20 65 6c 65 6d | 65 6e 74 20 6e 65 77 2d |e 1 elem|ent new-|
|000006a0| 6e 6f 64 65 20 30 5d 20 | 34 20 22 5c 0a 49 6e 20 |node 0] |4 "\.In |
|000006b0| 74 68 65 20 64 6f 75 62 | 6c 79 20 6c 69 6e 6b 65 |the doub|ly linke|
|000006c0| 64 20 6c 69 73 74 20 44 | 4c 4c 2c 20 69 6e 73 65 |d list D|LL, inse|
|000006d0| 72 74 20 61 20 6e 6f 64 | 65 20 63 6f 6e 74 61 69 |rt a nod|e contai|
|000006e0| 6e 69 6e 67 20 45 4c 45 | 4d 45 4e 54 20 61 66 74 |ning ELE|MENT aft|
|000006f0| 65 72 20 4e 4f 44 45 2e | 0a 41 72 67 73 3a 20 44 |er NODE.|.Args: D|
|00000700| 4c 4c 20 4e 4f 44 45 20 | 45 4c 45 4d 45 4e 54 2e |LL NODE |ELEMENT.|
|00000710| 22 5d 29 0a 28 66 73 65 | 74 20 27 64 6c 6c 2d 65 |"]).(fse|t 'dll-e|
|00000720| 6e 74 65 72 2d 62 65 66 | 6f 72 65 20 23 5b 28 64 |nter-bef|ore #[(d|
|00000730| 6c 6c 20 6e 6f 64 65 20 | 65 6c 65 6d 65 6e 74 29 |ll node |element)|
|00000740| 20 22 c0 09 c2 48 09 0b | 23 1c 09 c2 48 c5 0c 49 | "...H..|#...H..I|
|00000750| 88 09 c2 0c 49 29 87 22 | 20 5b 76 65 63 74 6f 72 |....I)."| [vector|
|00000760| 20 6e 6f 64 65 20 30 20 | 65 6c 65 6d 65 6e 74 20 | node 0 |element |
|00000770| 6e 65 77 2d 6e 6f 64 65 | 20 31 5d 20 34 20 22 5c |new-node| 1] 4 "\|
|00000780| 0a 49 6e 20 74 68 65 20 | 64 6f 75 62 6c 79 20 6c |.In the |doubly l|
|00000790| 69 6e 6b 65 64 20 6c 69 | 73 74 20 44 4c 4c 2c 20 |inked li|st DLL, |
|000007a0| 69 6e 73 65 72 74 20 61 | 20 6e 6f 64 65 20 63 6f |insert a| node co|
|000007b0| 6e 74 61 69 6e 69 6e 67 | 20 45 4c 45 4d 45 4e 54 |ntaining| ELEMENT|
|000007c0| 20 62 65 66 6f 72 65 20 | 4e 4f 44 45 2e 0a 41 72 | before |NODE..Ar|
|000007d0| 67 73 3a 20 44 4c 4c 20 | 4e 4f 44 45 20 45 4c 45 |gs: DLL |NODE ELE|
|000007e0| 4d 45 4e 54 2e 22 5d 29 | 0a 28 66 73 65 74 20 27 |MENT."])|.(fset '|
|000007f0| 64 6c 6c 2d 6e 65 78 74 | 20 23 5b 28 64 6c 6c 20 |dll-next| #[(dll |
|00000800| 6e 6f 64 65 29 20 22 08 | c1 48 c2 0b 21 3d 3f ad |node) ".|.H..!=?.|
|00000810| 83 08 c1 48 87 22 20 5b | 6e 6f 64 65 20 31 20 64 |...H." [|node 1 d|
|00000820| 6c 6c 2d 67 65 74 2d 64 | 75 6d 6d 79 2d 6e 6f 64 |ll-get-d|ummy-nod|
|00000830| 65 20 64 6c 6c 5d 20 33 | 20 22 5c 0a 52 65 74 75 |e dll] 3| "\.Retu|
|00000840| 72 6e 20 74 68 65 20 6e | 6f 64 65 20 61 66 74 65 |rn the n|ode afte|
|00000850| 72 20 4e 4f 44 45 2c 20 | 6f 72 20 6e 69 6c 20 69 |r NODE, |or nil i|
|00000860| 66 20 4e 4f 44 45 20 69 | 73 20 74 68 65 20 6c 61 |f NODE i|s the la|
|00000870| 73 74 20 6e 6f 64 65 2e | 0a 41 72 67 73 3a 20 44 |st node.|.Args: D|
|00000880| 4c 4c 20 4e 4f 44 45 2e | 22 5d 29 0a 28 66 73 65 |LL NODE.|"]).(fse|
|00000890| 74 20 27 64 6c 6c 2d 70 | 72 65 76 69 6f 75 73 20 |t 'dll-p|revious |
|000008a0| 23 5b 28 64 6c 6c 20 6e | 6f 64 65 29 20 22 08 c1 |#[(dll n|ode) "..|
|000008b0| 48 c2 0b 21 3d 3f ad 83 | 08 c1 48 87 22 20 5b 6e |H..!=?..|..H." [n|
|000008c0| 6f 64 65 20 30 20 64 6c | 6c 2d 67 65 74 2d 64 75 |ode 0 dl|l-get-du|
|000008d0| 6d 6d 79 2d 6e 6f 64 65 | 20 64 6c 6c 5d 20 33 20 |mmy-node| dll] 3 |
|000008e0| 22 5c 0a 52 65 74 75 72 | 6e 20 74 68 65 20 6e 6f |"\.Retur|n the no|
|000008f0| 64 65 20 62 65 66 6f 72 | 65 20 4e 4f 44 45 2c 20 |de befor|e NODE, |
|00000900| 6f 72 20 6e 69 6c 20 69 | 66 20 4e 4f 44 45 20 69 |or nil i|f NODE i|
|00000910| 73 20 74 68 65 20 66 69 | 72 73 74 20 6e 6f 64 65 |s the fi|rst node|
|00000920| 2e 0a 41 72 67 73 3a 20 | 44 4c 4c 20 4e 4f 44 45 |..Args: |DLL NODE|
|00000930| 2e 22 5d 29 0a 28 66 73 | 65 74 20 27 64 6c 6c 2d |."]).(fs|et 'dll-|
|00000940| 64 65 6c 65 74 65 20 23 | 5b 28 64 6c 6c 20 6e 6f |delete #|[(dll no|
|00000950| 64 65 29 20 22 08 c1 48 | c2 08 c2 48 49 88 08 c2 |de) "..H|...HI...|
|00000960| 48 c1 08 c1 48 49 88 08 | c3 48 87 22 20 5b 6e 6f |H...HI..|.H." [no|
|00000970| 64 65 20 30 20 31 20 32 | 5d 20 34 20 22 5c 0a 44 |de 0 1 2|] 4 "\.D|
|00000980| 65 6c 65 74 65 20 4e 4f | 44 45 20 66 72 6f 6d 20 |elete NO|DE from |
|00000990| 74 68 65 20 64 6f 75 62 | 6c 79 20 6c 69 6e 6b 65 |the doub|ly linke|
|000009a0| 64 20 6c 69 73 74 20 44 | 4c 4c 2e 0a 41 72 67 73 |d list D|LL..Args|
|000009b0| 3a 20 44 4c 4c 20 4e 4f | 44 45 2e 20 52 65 74 75 |: DLL NO|DE. Retu|
|000009c0| 72 6e 20 74 68 65 20 65 | 6c 65 6d 65 6e 74 20 6f |rn the e|lement o|
|000009d0| 66 20 6e 6f 64 65 2e 22 | 5d 29 0a 28 66 73 65 74 |f node."|]).(fset|
|000009e0| 20 27 64 6c 6c 2d 64 65 | 6c 65 74 65 2d 66 69 72 | 'dll-de|lete-fir|
|000009f0| 73 74 20 23 5b 28 64 6c | 6c 29 20 22 c0 09 c2 09 |st #[(dl|l) "....|
|00000a00| 21 c3 48 5c 22 87 22 20 | 5b 64 6c 6c 2d 64 65 6c |!.H\"." |[dll-del|
|00000a10| 65 74 65 20 64 6c 6c 20 | 64 6c 6c 2d 67 65 74 2d |ete dll |dll-get-|
|00000a20| 64 75 6d 6d 79 2d 6e 6f | 64 65 20 31 5d 20 34 20 |dummy-no|de 1] 4 |
|00000a30| 22 5c 0a 44 65 6c 65 74 | 65 20 74 68 65 20 66 69 |"\.Delet|e the fi|
|00000a40| 72 73 74 20 4e 4f 44 45 | 20 66 72 6f 6d 20 74 68 |rst NODE| from th|
|00000a50| 65 20 64 6f 75 62 6c 79 | 20 6c 69 6e 6b 65 64 20 |e doubly| linked |
|00000a60| 6c 69 73 74 20 44 4c 4c | 2e 0a 52 65 74 75 72 6e |list DLL|..Return|
|00000a70| 20 74 68 65 20 65 6c 65 | 6d 65 6e 74 2e 20 41 72 | the ele|ment. Ar|
|00000a80| 67 73 3a 20 44 4c 4c 2e | 20 52 65 74 75 72 6e 73 |gs: DLL.| Returns|
|00000a90| 20 6e 69 6c 20 69 66 20 | 74 68 65 20 44 4c 4c 20 | nil if |the DLL |
|00000aa0| 77 61 73 20 65 6d 70 74 | 79 2e 22 5d 29 0a 28 66 |was empt|y."]).(f|
|00000ab0| 73 65 74 20 27 64 6c 6c | 2d 64 65 6c 65 74 65 2d |set 'dll|-delete-|
|00000ac0| 6c 61 73 74 20 23 5b 28 | 64 6c 6c 29 20 22 c0 09 |last #[(|dll) "..|
|00000ad0| c2 09 21 c3 48 5c 22 87 | 22 20 5b 64 6c 6c 2d 64 |..!.H\".|" [dll-d|
|00000ae0| 65 6c 65 74 65 20 64 6c | 6c 20 64 6c 6c 2d 67 65 |elete dl|l dll-ge|
|00000af0| 74 2d 64 75 6d 6d 79 2d | 6e 6f 64 65 20 30 5d 20 |t-dummy-|node 0] |
|00000b00| 34 20 22 5c 0a 44 65 6c | 65 74 65 20 74 68 65 20 |4 "\.Del|ete the |
|00000b10| 6c 61 73 74 20 4e 4f 44 | 45 20 66 72 6f 6d 20 74 |last NOD|E from t|
|00000b20| 68 65 20 64 6f 75 62 6c | 79 20 6c 69 6e 6b 65 64 |he doubl|y linked|
|00000b30| 20 6c 69 73 74 20 44 4c | 4c 2e 0a 52 65 74 75 72 | list DL|L..Retur|
|00000b40| 6e 20 74 68 65 20 65 6c | 65 6d 65 6e 74 2e 20 41 |n the el|ement. A|
|00000b50| 72 67 73 3a 20 44 4c 4c | 2e 20 52 65 74 75 72 6e |rgs: DLL|. Return|
|00000b60| 73 20 6e 69 6c 20 69 66 | 20 74 68 65 20 44 4c 4c |s nil if| the DLL|
|00000b70| 20 77 61 73 20 65 6d 70 | 74 79 2e 22 5d 29 0a 28 | was emp|ty."]).(|
|00000b80| 66 73 65 74 20 27 64 6c | 6c 2d 66 69 72 73 74 20 |fset 'dl|l-first |
|00000b90| 23 5b 28 64 6c 6c 29 20 | 22 c0 09 21 c2 48 c0 09 |#[(dll) |"..!.H..|
|00000ba0| 21 3d 3f ad 87 c0 09 21 | c2 48 c3 48 87 22 20 5b |!=?....!|.H.H." [|
|00000bb0| 64 6c 6c 2d 67 65 74 2d | 64 75 6d 6d 79 2d 6e 6f |dll-get-|dummy-no|
|00000bc0| 64 65 20 64 6c 6c 20 31 | 20 32 5d 20 33 20 22 5c |de dll 1| 2] 3 "\|
|00000bd0| 0a 52 65 74 75 72 6e 20 | 74 68 65 20 66 69 72 73 |.Return |the firs|
|00000be0| 74 20 65 6c 65 6d 65 6e | 74 20 6f 6e 20 74 68 65 |t elemen|t on the|
|00000bf0| 20 64 6f 75 62 6c 79 20 | 6c 69 6e 6b 65 64 20 6c | doubly |linked l|
|00000c00| 69 73 74 20 44 4c 4c 2e | 0a 52 65 74 75 72 6e 20 |ist DLL.|.Return |
|00000c10| 6e 69 6c 20 69 66 20 74 | 68 65 20 6c 69 73 74 20 |nil if t|he list |
|00000c20| 69 73 20 65 6d 70 74 79 | 2e 20 54 68 65 20 65 6c |is empty|. The el|
|00000c30| 65 6d 65 6e 74 20 69 73 | 20 6e 6f 74 20 72 65 6d |ement is| not rem|
|00000c40| 6f 76 65 64 2e 22 5d 29 | 0a 28 66 73 65 74 20 27 |oved."])|.(fset '|
|00000c50| 64 6c 6c 2d 6c 61 73 74 | 20 23 5b 28 64 6c 6c 29 |dll-last| #[(dll)|
|00000c60| 20 22 c0 09 21 c2 48 c0 | 09 21 3d 3f ad 87 c0 09 | "..!.H.|.!=?....|
|00000c70| 21 c2 48 c3 48 87 22 20 | 5b 64 6c 6c 2d 67 65 74 |!.H.H." |[dll-get|
|00000c80| 2d 64 75 6d 6d 79 2d 6e | 6f 64 65 20 64 6c 6c 20 |-dummy-n|ode dll |
|00000c90| 30 20 32 5d 20 33 20 22 | 5c 0a 52 65 74 75 72 6e |0 2] 3 "|\.Return|
|00000ca0| 20 74 68 65 20 6c 61 73 | 74 20 65 6c 65 6d 65 6e | the las|t elemen|
|00000cb0| 74 20 6f 6e 20 74 68 65 | 20 64 6f 75 62 6c 79 20 |t on the| doubly |
|00000cc0| 6c 69 6e 6b 65 64 20 6c | 69 73 74 20 44 4c 4c 2e |linked l|ist DLL.|
|00000cd0| 0a 52 65 74 75 72 6e 20 | 6e 69 6c 20 69 66 20 74 |.Return |nil if t|
|00000ce0| 68 65 20 6c 69 73 74 20 | 69 73 20 65 6d 70 74 79 |he list |is empty|
|00000cf0| 2e 20 54 68 65 20 65 6c | 65 6d 65 6e 74 20 69 73 |. The el|ement is|
|00000d00| 20 6e 6f 74 20 72 65 6d | 6f 76 65 64 2e 22 5d 29 | not rem|oved."])|
|00000d10| 0a 28 66 73 65 74 20 27 | 64 6c 6c 2d 6e 74 68 20 |.(fset '|dll-nth |
|00000d20| 23 5b 28 64 6c 6c 20 6e | 29 20 22 c0 09 21 1a 0b |#[(dll n|) "..!..|
|00000d30| c4 57 ab 83 c4 aa 81 c5 | 1e 06 5c 6e 0e 06 48 1e |.W......|..\n..H.|
|00000d40| 07 0b c4 57 ab 84 c8 0b | 5a 13 5c 6e 0e 07 3d ac |...W....|Z.\n..=.|
|00000d50| 91 0b c4 56 ab 8c 0e 07 | 0e 06 48 16 07 0b 53 13 |...V....|..H...S.|
|00000d60| aa 69 5c 6e 0e 07 3d 3f | ad 82 0e 07 2b 87 22 20 |.i\n..=?|....+." |
|00000d70| 5b 64 6c 6c 2d 67 65 74 | 2d 64 75 6d 6d 79 2d 6e |[dll-get|-dummy-n|
|00000d80| 6f 64 65 20 64 6c 6c 20 | 64 75 6d 6d 79 20 6e 20 |ode dll |dummy n |
|00000d90| 30 20 31 20 62 72 61 6e | 63 68 20 6e 6f 64 65 20 |0 1 bran|ch node |
|00000da0| 2d 31 5d 20 32 20 22 5c | 0a 52 65 74 75 72 6e 20 |-1] 2 "\|.Return |
|00000db0| 74 68 65 20 4e 74 68 20 | 6e 6f 64 65 20 66 72 6f |the Nth |node fro|
|00000dc0| 6d 20 74 68 65 20 64 6f | 75 62 6c 79 20 6c 69 6e |m the do|ubly lin|
|00000dd0| 6b 65 64 20 6c 69 73 74 | 20 44 4c 4c 2e 0a 20 41 |ked list| DLL.. A|
|00000de0| 72 67 73 3a 20 44 4c 4c | 20 4e 0a 4e 20 63 6f 75 |rgs: DLL| N.N cou|
|00000df0| 6e 74 73 20 66 72 6f 6d | 20 7a 65 72 6f 2e 20 49 |nts from| zero. I|
|00000e00| 66 20 44 4c 4c 20 69 73 | 20 6e 6f 74 20 74 68 61 |f DLL is| not tha|
|00000e10| 74 20 6c 6f 6e 67 2c 20 | 6e 69 6c 20 69 73 20 72 |t long, |nil is r|
|00000e20| 65 74 75 72 6e 65 64 2e | 0a 49 66 20 4e 20 69 73 |eturned.|.If N is|
|00000e30| 20 6e 65 67 61 74 69 76 | 65 2c 20 72 65 74 75 72 | negativ|e, retur|
|00000e40| 6e 20 74 68 65 20 2d 28 | 4e 2b 31 29 74 68 20 6c |n the -(|N+1)th l|
|00000e50| 61 73 74 20 65 6c 65 6d | 65 6e 74 2e 0a 54 68 75 |ast elem|ent..Thu|
|00000e60| 73 2c 20 28 64 6c 6c 2d | 6e 74 68 20 64 6c 6c 20 |s, (dll-|nth dll |
|00000e70| 30 29 20 72 65 74 75 72 | 6e 73 20 74 68 65 20 66 |0) retur|ns the f|
|00000e80| 69 72 73 74 20 6e 6f 64 | 65 2c 0a 61 6e 64 20 28 |irst nod|e,.and (|
|00000e90| 64 6c 6c 2d 6e 74 68 20 | 64 6c 6c 20 2d 31 29 20 |dll-nth |dll -1) |
|00000ea0| 72 65 74 75 72 6e 73 20 | 74 68 65 20 6c 61 73 74 |returns |the last|
|00000eb0| 20 6e 6f 64 65 2e 22 5d | 29 0a 28 66 73 65 74 20 | node."]|).(fset |
|00000ec0| 27 64 6c 6c 2d 65 6d 70 | 74 79 20 23 5b 28 64 6c |'dll-emp|ty #[(dl|
|00000ed0| 6c 29 20 22 c0 09 21 c2 | 48 c0 09 21 3d 87 22 20 |l) "..!.|H..!=." |
|00000ee0| 5b 64 6c 6c 2d 67 65 74 | 2d 64 75 6d 6d 79 2d 6e |[dll-get|-dummy-n|
|00000ef0| 6f 64 65 20 64 6c 6c 20 | 30 5d 20 33 20 22 5c 0a |ode dll |0] 3 "\.|
|00000f00| 52 65 74 75 72 6e 20 74 | 20 69 66 20 74 68 65 20 |Return t| if the |
|00000f10| 64 6f 75 62 6c 79 20 6c | 69 6e 6b 65 64 20 6c 69 |doubly l|inked li|
|00000f20| 73 74 20 44 4c 4c 20 69 | 73 20 65 6d 70 74 79 2c |st DLL i|s empty,|
|00000f30| 20 6e 69 6c 20 6f 74 68 | 65 72 77 69 73 65 22 5d | nil oth|erwise"]|
|00000f40| 29 0a 28 66 73 65 74 20 | 27 64 6c 6c 2d 6c 65 6e |).(fset |'dll-len|
|00000f50| 67 74 68 20 23 5b 28 64 | 6c 6c 29 20 22 c0 09 21 |gth #[(d|ll) "..!|
|00000f60| 89 1a c3 48 1c c5 1e 06 | 0c 5c 6e 3d ac 8b 0c c3 |...H....|.\n=....|
|00000f70| 48 14 0e 06 54 16 06 aa | 70 0e 06 2b 87 22 20 5b |H...T...|p..+." [|
|00000f80| 64 6c 6c 2d 67 65 74 2d | 64 75 6d 6d 79 2d 6e 6f |dll-get-|dummy-no|
|00000f90| 64 65 20 64 6c 6c 20 64 | 75 6d 6d 79 20 31 20 6e |de dll d|ummy 1 n|
|00000fa0| 6f 64 65 20 30 20 6e 5d | 20 33 20 22 5c 0a 52 65 |ode 0 n]| 3 "\.Re|
|00000fb0| 74 75 72 6e 73 20 74 68 | 65 20 6e 75 6d 62 65 72 |turns th|e number|
|00000fc0| 20 6f 66 20 65 6c 65 6d | 65 6e 74 73 20 69 6e 20 | of elem|ents in |
|00000fd0| 74 68 65 20 64 6f 75 62 | 6c 79 20 6c 69 6e 6b 65 |the doub|ly linke|
|00000fe0| 64 20 6c 69 73 74 20 44 | 4c 4c 2e 22 5d 29 0a 28 |d list D|LL."]).(|
|00000ff0| 66 73 65 74 20 27 64 6c | 6c 2d 63 6f 70 79 20 23 |fset 'dl|l-copy #|
|00001000| 5b 28 64 6c 6c 20 26 6f | 70 74 69 6f 6e 61 6c 20 |[(dll &o|ptional |
|00001010| 65 6c 65 6d 65 6e 74 2d | 63 6f 70 79 2d 66 6e 63 |element-|copy-fnc|
|00001020| 29 20 22 c0 20 c1 5c 6e | c3 5c 22 1c 1d 0e 06 ab |) ". .\n|.\".....|
|00001030| 95 0c ab a4 c7 0d 0e 06 | 0c c8 48 21 5c 22 88 c9 |........|..H!\"..|
|00001040| 5c 6e 0c 5c 22 89 14 aa | 6c 0c ab 8f c7 0d 0c c8 |\n.\"...|l.......|
|00001050| 48 5c 22 88 c9 5c 6e 0c | 5c 22 89 14 ac 71 0d 2a |H\"..\n.|\"...q.*|
|00001060| 87 22 20 5b 64 6c 6c 2d | 63 72 65 61 74 65 20 64 |." [dll-|create d|
|00001070| 6c 6c 2d 6e 74 68 20 64 | 6c 6c 20 30 20 6e 6f 64 |ll-nth d|ll 0 nod|
|00001080| 65 20 72 65 73 75 6c 74 | 20 65 6c 65 6d 65 6e 74 |e result| element|
|00001090| 2d 63 6f 70 79 2d 66 6e | 63 20 64 6c 6c 2d 65 6e |-copy-fn|c dll-en|
|000010a0| 74 65 72 2d 6c 61 73 74 | 20 32 20 64 6c 6c 2d 6e |ter-last| 2 dll-n|
|000010b0| 65 78 74 5d 20 36 20 22 | 5c 0a 52 65 74 75 72 6e |ext] 6 "|\.Return|
|000010c0| 20 61 20 63 6f 70 79 20 | 6f 66 20 74 68 65 20 64 | a copy |of the d|
|000010d0| 6f 75 62 6c 79 20 6c 69 | 6e 6b 65 64 20 6c 69 73 |oubly li|nked lis|
|000010e0| 74 20 44 4c 4c 2e 0a 49 | 66 20 6f 70 74 69 6f 6e |t DLL..I|f option|
|000010f0| 61 6c 20 73 65 63 6f 6e | 64 20 61 72 67 75 6d 65 |al secon|d argume|
|00001100| 6e 74 20 45 4c 45 4d 45 | 4e 54 2d 43 4f 50 59 2d |nt ELEME|NT-COPY-|
|00001110| 46 4e 43 20 69 73 20 6e | 6f 6e 2d 6e 69 6c 20 69 |FNC is n|on-nil i|
|00001120| 74 20 73 68 6f 75 6c 64 | 20 62 65 0a 61 20 66 75 |t should| be.a fu|
|00001130| 6e 63 74 69 6f 6e 20 74 | 68 61 74 20 74 61 6b 65 |nction t|hat take|
|00001140| 73 20 6f 6e 65 20 61 72 | 67 75 6d 65 6e 74 2c 20 |s one ar|gument, |
|00001150| 61 6e 20 65 6c 65 6d 65 | 6e 74 2c 20 61 6e 64 20 |an eleme|nt, and |
|00001160| 72 65 74 75 72 6e 73 20 | 61 20 63 6f 70 79 20 6f |returns |a copy o|
|00001170| 66 20 69 74 2e 0a 49 66 | 20 45 4c 45 4d 45 4e 54 |f it..If| ELEMENT|
|00001180| 2d 43 4f 50 59 2d 46 4e | 43 20 69 73 20 6e 6f 74 |-COPY-FN|C is not|
|00001190| 20 67 69 76 65 6e 20 74 | 68 65 20 65 6c 65 6d 65 | given t|he eleme|
|000011a0| 6e 74 73 20 61 72 65 20 | 6e 6f 74 20 63 6f 70 69 |nts are |not copi|
|000011b0| 65 64 2e 22 5d 29 0a 28 | 66 73 65 74 20 27 64 6c |ed."]).(|fset 'dl|
|000011c0| 6c 2d 61 6c 6c 20 23 5b | 28 64 6c 6c 29 20 22 c0 |l-all #[|(dll) ".|
|000011d0| 19 c2 0b 21 89 1c c5 48 | 89 1e 06 0c 3d ac 90 0e |...!...H|....=...|
|000011e0| 06 c7 48 09 42 11 0e 06 | c5 48 89 16 06 aa 6c 09 |..H.B...|.H....l.|
|000011f0| 2b 87 22 20 5b 6e 69 6c | 20 72 65 73 75 6c 74 20 |+." [nil| result |
|00001200| 64 6c 6c 2d 67 65 74 2d | 64 75 6d 6d 79 2d 6e 6f |dll-get-|dummy-no|
|00001210| 64 65 20 64 6c 6c 20 64 | 75 6d 6d 79 20 30 20 6e |de dll d|ummy 0 n|
|00001220| 6f 64 65 20 32 5d 20 33 | 20 22 5c 0a 52 65 74 75 |ode 2] 3| "\.Retu|
|00001230| 72 6e 20 61 6c 6c 20 65 | 6c 65 6d 65 6e 74 73 20 |rn all e|lements |
|00001240| 6f 6e 20 74 68 65 20 64 | 6f 75 62 6c 65 20 6c 69 |on the d|ouble li|
|00001250| 6e 6b 65 64 20 6c 69 73 | 74 20 44 4c 4c 20 61 73 |nked lis|t DLL as|
|00001260| 20 61 6e 20 6f 72 64 69 | 6e 61 72 79 20 6c 69 73 | an ordi|nary lis|
|00001270| 74 2e 22 5d 29 0a 28 66 | 73 65 74 20 27 64 6c 6c |t."]).(f|set 'dll|
|00001280| 2d 63 6c 65 61 72 20 23 | 5b 28 64 6c 6c 29 20 22 |-clear #|[(dll) "|
|00001290| c0 09 21 c2 c0 09 21 49 | 88 c0 09 21 c3 c0 09 21 |..!...!I|...!...!|
|000012a0| 49 87 22 20 5b 64 6c 6c | 2d 67 65 74 2d 64 75 6d |I." [dll|-get-dum|
|000012b0| 6d 79 2d 6e 6f 64 65 20 | 64 6c 6c 20 30 20 31 5d |my-node |dll 0 1]|
|000012c0| 20 34 20 22 5c 0a 43 6c | 65 61 72 20 74 68 65 20 | 4 "\.Cl|ear the |
|000012d0| 64 6f 75 62 6c 79 20 6c | 69 6e 6b 65 64 20 6c 69 |doubly l|inked li|
|000012e0| 73 74 20 44 4c 4c 2c 20 | 69 2e 65 2e 20 6d 61 6b |st DLL, |i.e. mak|
|000012f0| 65 20 69 74 20 63 6f 6d | 70 6c 65 74 65 6c 79 20 |e it com|pletely |
|00001300| 65 6d 70 74 79 2e 22 5d | 29 0a 28 66 73 65 74 20 |empty."]|).(fset |
|00001310| 27 64 6c 6c 2d 6d 61 70 | 20 23 5b 28 6d 61 70 2d |'dll-map| #[(map-|
|00001320| 66 75 6e 63 74 69 6f 6e | 20 64 6c 6c 29 20 22 c0 |function| dll) ".|
|00001330| 09 21 89 1a c3 48 89 1c | 5c 6e 3d 3f ad 8d 0d 0c |.!...H..|\n=?....|
|00001340| c6 48 21 88 0c c3 48 89 | 14 aa 6e 2a 87 22 20 5b |.H!...H.|..n*." [|
|00001350| 64 6c 6c 2d 67 65 74 2d | 64 75 6d 6d 79 2d 6e 6f |dll-get-|dummy-no|
|00001360| 64 65 20 64 6c 6c 20 64 | 75 6d 6d 79 20 31 20 6e |de dll d|ummy 1 n|
|00001370| 6f 64 65 20 6d 61 70 2d | 66 75 6e 63 74 69 6f 6e |ode map-|function|
|00001380| 20 32 5d 20 34 20 22 5c | 0a 41 70 70 6c 79 20 4d | 2] 4 "\|.Apply M|
|00001390| 41 50 2d 46 55 4e 43 54 | 49 4f 4e 20 74 6f 20 61 |AP-FUNCT|ION to a|
|000013a0| 6c 6c 20 65 6c 65 6d 65 | 6e 74 73 20 69 6e 20 74 |ll eleme|nts in t|
|000013b0| 68 65 20 64 6f 75 62 6c | 79 20 6c 69 6e 6b 65 64 |he doubl|y linked|
|000013c0| 20 6c 69 73 74 20 44 4c | 4c 2e 0a 54 68 65 20 66 | list DL|L..The f|
|000013d0| 75 6e 63 74 69 6f 6e 20 | 69 73 20 61 70 70 6c 69 |unction |is appli|
|000013e0| 65 64 20 74 6f 20 74 68 | 65 20 66 69 72 73 74 20 |ed to th|e first |
|000013f0| 65 6c 65 6d 65 6e 74 20 | 66 69 72 73 74 2e 22 5d |element |first."]|
|00001400| 29 0a 28 66 73 65 74 20 | 27 64 6c 6c 2d 6d 61 70 |).(fset |'dll-map|
|00001410| 2d 72 65 76 65 72 73 65 | 20 23 5b 28 6d 61 70 2d |-reverse| #[(map-|
|00001420| 66 75 6e 63 74 69 6f 6e | 20 64 6c 6c 29 20 22 c0 |function| dll) ".|
|00001430| 09 21 89 1a c3 48 89 1c | 5c 6e 3d 3f ad 8d 0d 0c |.!...H..|\n=?....|
|00001440| c6 48 21 88 0c c3 48 89 | 14 aa 6e 2a 87 22 20 5b |.H!...H.|..n*." [|
|00001450| 64 6c 6c 2d 67 65 74 2d | 64 75 6d 6d 79 2d 6e 6f |dll-get-|dummy-no|
|00001460| 64 65 20 64 6c 6c 20 64 | 75 6d 6d 79 20 30 20 6e |de dll d|ummy 0 n|
|00001470| 6f 64 65 20 6d 61 70 2d | 66 75 6e 63 74 69 6f 6e |ode map-|function|
|00001480| 20 32 5d 20 34 20 22 5c | 0a 41 70 70 6c 79 20 4d | 2] 4 "\|.Apply M|
|00001490| 41 50 2d 46 55 4e 43 54 | 49 4f 4e 20 74 6f 20 61 |AP-FUNCT|ION to a|
|000014a0| 6c 6c 20 65 6c 65 6d 65 | 6e 74 73 20 69 6e 20 74 |ll eleme|nts in t|
|000014b0| 68 65 20 64 6f 75 62 6c | 79 20 6c 69 6e 6b 65 64 |he doubl|y linked|
|000014c0| 20 6c 69 73 74 20 44 4c | 4c 2e 0a 54 68 65 20 66 | list DL|L..The f|
|000014d0| 75 6e 63 74 69 6f 6e 20 | 69 73 20 61 70 70 6c 69 |unction |is appli|
|000014e0| 65 64 20 74 6f 20 74 68 | 65 20 6c 61 73 74 20 65 |ed to th|e last e|
|000014f0| 6c 65 6d 65 6e 74 20 66 | 69 72 73 74 2e 22 5d 29 |lement f|irst."])|
|00001500| 0a 28 66 73 65 74 20 27 | 64 6c 6c 2d 63 72 65 61 |.(fset '|dll-crea|
|00001510| 74 65 2d 66 72 6f 6d 2d | 6c 69 73 74 20 23 5b 28 |te-from-|list #[(|
|00001520| 6c 69 73 74 29 20 22 c0 | 20 19 5c 6e ab 8c c3 09 |list) ".| .\n....|
|00001530| 5c 6e 40 5c 22 88 5c 6e | 41 89 12 ac 74 09 29 87 |\n@\".\n|A...t.).|
|00001540| 22 20 5b 64 6c 6c 2d 63 | 72 65 61 74 65 20 64 6c |" [dll-c|reate dl|
|00001550| 6c 20 6c 69 73 74 20 64 | 6c 6c 2d 65 6e 74 65 72 |l list d|ll-enter|
|00001560| 2d 6c 61 73 74 5d 20 34 | 20 22 5c 0a 47 69 76 65 |-last] 4| "\.Give|
|00001570| 6e 20 61 6e 20 65 6c 69 | 73 70 20 4c 49 53 54 20 |n an eli|sp LIST |
|00001580| 63 72 65 61 74 65 20 61 | 20 64 6f 75 62 6c 79 20 |create a| doubly |
|00001590| 6c 69 6e 6b 65 64 20 6c | 69 73 74 20 77 69 74 68 |linked l|ist with|
|000015a0| 20 74 68 65 20 73 61 6d | 65 20 65 6c 65 6d 65 6e | the sam|e elemen|
|000015b0| 74 73 2e 22 5d 29 0a 28 | 66 73 65 74 20 27 64 6c |ts."]).(|fset 'dl|
|000015c0| 6c 2d 73 6f 72 74 20 23 | 5b 28 64 6c 6c 20 70 72 |l-sort #|[(dll pr|
|000015d0| 65 64 69 63 61 74 65 29 | 20 22 c0 09 c2 c3 09 21 |edicate)| ".....!|
|000015e0| c4 5c 22 5c 22 88 09 87 | 22 20 5b 64 6c 6c 2d 73 |.\"\"...|" [dll-s|
|000015f0| 65 74 2d 66 72 6f 6d 2d | 6e 6f 64 65 2d 6c 69 73 |et-from-|node-lis|
|00001600| 74 20 64 6c 6c 20 73 6f | 72 74 20 64 6c 6c 2d 6c |t dll so|rt dll-l|
|00001610| 69 73 74 2d 6e 6f 64 65 | 73 20 23 5b 28 78 31 20 |ist-node|s #[(x1 |
|00001620| 78 32 29 20 22 08 09 c2 | 48 0b c2 48 5c 22 87 22 |x2) "...|H..H\"."|
|00001630| 20 5b 70 72 65 64 69 63 | 61 74 65 20 78 31 20 32 | [predic|ate x1 2|
|00001640| 20 78 32 5d 20 34 5d 5d | 20 35 20 22 5c 0a 53 6f | x2] 4]]| 5 "\.So|
|00001650| 72 74 20 74 68 65 20 64 | 6f 75 62 6c 79 20 6c 69 |rt the d|oubly li|
|00001660| 6e 6b 65 64 20 6c 69 73 | 74 20 44 4c 4c 2c 20 73 |nked lis|t DLL, s|
|00001670| 74 61 62 6c 79 2c 20 63 | 6f 6d 70 61 72 69 6e 67 |tably, c|omparing|
|00001680| 20 65 6c 65 6d 65 6e 74 | 73 20 75 73 69 6e 67 20 | element|s using |
|00001690| 50 52 45 44 49 43 41 54 | 45 2e 0a 52 65 74 75 72 |PREDICAT|E..Retur|
|000016a0| 6e 73 20 74 68 65 20 73 | 6f 72 74 65 64 20 6c 69 |ns the s|orted li|
|000016b0| 73 74 2e 20 44 4c 4c 20 | 69 73 20 6d 6f 64 69 66 |st. DLL |is modif|
|000016c0| 69 65 64 20 62 79 20 73 | 69 64 65 20 65 66 66 65 |ied by s|ide effe|
|000016d0| 63 74 73 2e 0a 50 52 45 | 44 49 43 41 54 45 20 69 |cts..PRE|DICATE i|
|000016e0| 73 20 63 61 6c 6c 65 64 | 20 77 69 74 68 20 74 77 |s called| with tw|
|000016f0| 6f 20 65 6c 65 6d 65 6e | 74 73 20 6f 66 20 44 4c |o elemen|ts of DL|
|00001700| 4c 2c 20 61 6e 64 20 73 | 68 6f 75 6c 64 20 72 65 |L, and s|hould re|
|00001710| 74 75 72 6e 20 54 0a 69 | 66 20 74 68 65 20 66 69 |turn T.i|f the fi|
|00001720| 72 73 74 20 65 6c 65 6d | 65 6e 74 20 69 73 20 5c |rst elem|ent is \|
|00001730| 22 6c 65 73 73 5c 22 20 | 74 68 61 6e 20 74 68 65 |"less\" |than the|
|00001740| 20 73 65 63 6f 6e 64 2e | 22 5d 29 0a 28 66 73 65 | second.|"]).(fse|
|00001750| 74 20 27 64 6c 6c 2d 66 | 69 6c 74 65 72 20 23 5b |t 'dll-f|ilter #[|
|00001760| 28 64 6c 6c 20 70 72 65 | 64 69 63 61 74 65 29 20 |(dll pre|dicate) |
|00001770| 22 c0 09 21 89 1a c3 48 | 1c c5 1e 06 0c 5c 6e 3d |"..!...H|.....\n=|
|00001780| 3f ad 98 0c c3 48 16 06 | 0e 07 0c c8 48 21 ac 85 |?....H..|....H!..|
|00001790| c9 09 0c 5c 22 88 0e 06 | 89 14 aa 63 2b 87 22 20 |...\"...|...c+." |
|000017a0| 5b 64 6c 6c 2d 67 65 74 | 2d 64 75 6d 6d 79 2d 6e |[dll-get|-dummy-n|
|000017b0| 6f 64 65 20 64 6c 6c 20 | 64 75 6d 6d 79 20 31 20 |ode dll |dummy 1 |
|000017c0| 6e 6f 64 65 20 6e 69 6c | 20 6e 65 78 74 20 70 72 |node nil| next pr|
|000017d0| 65 64 69 63 61 74 65 20 | 32 20 64 6c 6c 2d 64 65 |edicate |2 dll-de|
|000017e0| 6c 65 74 65 5d 20 34 20 | 22 5c 0a 52 65 6d 6f 76 |lete] 4 |"\.Remov|
|000017f0| 65 20 61 6c 6c 20 65 6c | 65 6d 65 6e 74 73 20 69 |e all el|ements i|
|00001800| 6e 20 74 68 65 20 64 6f | 75 62 6c 79 20 6c 69 6e |n the do|ubly lin|
|00001810| 6b 65 64 20 6c 69 73 74 | 20 44 4c 4c 20 66 6f 72 |ked list| DLL for|
|00001820| 20 77 68 69 63 68 20 50 | 52 45 44 49 43 41 54 45 | which P|REDICATE|
|00001830| 0a 72 65 74 75 72 6e 73 | 20 6e 69 6c 2e 22 5d 29 |.returns| nil."])|
|00001840| 0a | |. | |
+--------+-------------------------+-------------------------+--------+--------+